#ifdef EJEMPLO_3

#include <iostream>
#include <string.h>
#include "LockFile.h"

#define	NOMBRE_ARCHIVO	"salida.txt"
#define	TEXTO_HIJO		"Mensaje del hijo\n"
#define	TEXTO_PADRE		"Mensaje del padre\n"

using namespace std;

int main () {

	pid_t pid = fork ();

	if ( pid == 0 ) {

		LockFile lock ( (char *) NOMBRE_ARCHIVO );
		lock.tomarLock ();

		lock.escribir ( (char *)TEXTO_HIJO,strlen(TEXTO_HIJO) );
		sleep ( 1 );
		lock.escribir ( (char *)TEXTO_HIJO,strlen(TEXTO_HIJO) );
		lock.escribir ( (char *)TEXTO_HIJO,strlen(TEXTO_HIJO) );

		lock.liberarLock ();
		cout << "Hijo: fin del programa" << endl;
		return 0;

	} else {

		LockFile lock ( (char *) NOMBRE_ARCHIVO );
		lock.tomarLock ();

		lock.escribir ( (char *)TEXTO_PADRE,strlen(TEXTO_PADRE) );
		lock.escribir ( (char *)TEXTO_PADRE,strlen(TEXTO_PADRE) );
		sleep ( 1 );
		lock.escribir ( (char *)TEXTO_PADRE,strlen(TEXTO_PADRE) );

		lock.liberarLock ();
		cout << "Padre: fin del programa" << endl;
		return 0;

	}

}

#endif
